package com.iris.live.services.common;

import com.iris.live.services.data.models.顾客进店记录表Model;

import java.sql.Time;
import java.time.LocalDate;
import java.time.LocalTime;

/**
 * ApprovalServiceImpl另一个入口：saveStroe（）
 * Created by lichao on 2017/4/10.
 */
public class TrafficLogUtils {

    /**
     * 状态类型枚举
     */
    private enum ORDER_TYPE {
        //到店目的
        Inroom_Purpose_Quote("看车比价"), Inroom_Purpose_Order("订单"),
        Inroom_Purpose_Billing("零售"), Inroom_Purpose_Delivery("交车"),
        Inroom_Purpose_Unsubscribe("退订"), Inroom_Purpose_Procedure("办手续"),
        Inroom_Purpose_Other("其他"), Inroom_Purpose_Returned("交车后退车"),
        //顾客级别
        Cust_Level_A("A:一周内订单"), Cust_Level_B("B:一个月内订单"),
        Cust_Level_C("C:三个月内订单"), Cust_Level_D("D:六个月内订单"),
        Cust_Level_E("E:六个月以上订单"), Cust_Level_Order("无评级:已经订单或交车");

        public String getText() {
            return text;
        }

        private String text;

        ORDER_TYPE(String text) {
            this.text=text;
        }
    }


    private static final String YES = "是";
    private static final String NO = "否";
    private static final String NO_NUMBER = "-1";
    private static final String REFUND = "退订";

    private static final int ORDER = 1;//订单
    private static final int ORDER_ADD = 2;//订单（非当天订单，新增）
    private static final int CONTRACT_AUDIT = 3;//合同审批，非限定提交
    private static final int ORDER_UPDATE = 4;//订单修改(有进店记录)
    private static final int CHANGE_TICKET = 5;//换票
    private static final int CONTRACT_UPDATE = 6;//合同修改
    private static final int REFUND_TICKET = 7;//退票
    private static final int OPEN_TICKET = 8;//开票
    private static final int INTENTION_TO_ORDER = 9;//意向订单转订单，走订单修改
    private static final int REFUND_ORDER = 10;//当天退订
    private static final int NEW_REFUND_ORDER = 11;//隔天订单，今天有进店记录退订
    private static final int INTENTION_ORDER = 12;//意向订单
    private static final int INTENTION_ORDER_ADD = 13;//意向订单（非当天意向订单，新增）

    public static void updateTrafficLogModel(顾客进店记录表Model model顾客进店记录表,Integer type){
        switch (type){
            case INTENTION_ORDER_ADD://意向订单（非当天订单，新增）
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                model顾客进店记录表.set进店编号(null);
                model顾客进店记录表.set是否来电(NO);
                model顾客进店记录表.set是否留档(YES);
                model顾客进店记录表.set是否新留档(NO);
                model顾客进店记录表.set是否首次到店(NO);
                model顾客进店记录表.set是否预约(NO);
                model顾客进店记录表.set到店时间(Time.valueOf(LocalTime.of(3, 0, 0)));
                model顾客进店记录表.set离店时间(Time.valueOf(LocalTime.of(3, 1, 0)));
                model顾客进店记录表.set停留时间(1);
                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Order.getText());
                model顾客进店记录表.set是否订单(YES);
                // 黄永平增加 进店日期，飞哥给的方法 2016.12.24
                model顾客进店记录表.set进店日期(java.sql.Date.valueOf(LocalDate.now()));
                break;
            case INTENTION_ORDER://意向订单
                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Order.getText());
                model顾客进店记录表.set是否订单(YES);
                model顾客进店记录表.set是否报价(YES);
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                model顾客进店记录表.set接待备注("意向订单");
                break;
            case ORDER://订单
                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Order.getText());
                model顾客进店记录表.set是否订单(YES);
                model顾客进店记录表.set是否报价(YES);
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                break;
            case ORDER_ADD://订单（非当天订单，新增）
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                model顾客进店记录表.set进店编号(null);
                model顾客进店记录表.set是否来电(NO);
                model顾客进店记录表.set是否留档(YES);
                model顾客进店记录表.set是否新留档(NO);
                model顾客进店记录表.set是否首次到店(NO);
                model顾客进店记录表.set是否预约(NO);
                model顾客进店记录表.set到店时间(Time.valueOf(LocalTime.of(3, 0, 0)));
                model顾客进店记录表.set离店时间(Time.valueOf(LocalTime.of(3, 1, 0)));
                model顾客进店记录表.set停留时间(1);
                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Order.getText());
                model顾客进店记录表.set是否订单(YES);
                // 黄永平增加 进店日期，飞哥给的方法 2016.12.24
                model顾客进店记录表.set进店日期(java.sql.Date.valueOf(LocalDate.now()));
                break;
            case CONTRACT_AUDIT://合同审批，非限定提交
                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Procedure.getText());
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                break;
            case ORDER_UPDATE://订单修改(有进店记录)
                //转换意向订单未改状态
                model顾客进店记录表.set是否订单(YES);
                model顾客进店记录表.set是否报价(YES);

                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Procedure.getText());
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                break;
            case CHANGE_TICKET://换票
//                model顾客进店记录表.set报价编号(null);
                model顾客进店记录表.set是否零售(NO_NUMBER);
//                model顾客进店记录表.set到店时间(Time.valueOf(LocalTime.of(03, 00, 00)));
//                model顾客进店记录表.set离店时间(Time.valueOf(LocalTime.of(03, 01, 00)));
//                model顾客进店记录表.set停留时间(1);
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Procedure.getText());
                break;
            case CONTRACT_UPDATE://合同修改
                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Procedure.getText());
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                break;
            case REFUND_TICKET://退票
                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Procedure.getText());
                model顾客进店记录表.set是否零售(NO_NUMBER);
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                break;
            case OPEN_TICKET://开票
                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Procedure.getText());
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                break;
            case INTENTION_TO_ORDER://意向订单转订单
                //转换意向订单未改状态
                model顾客进店记录表.set是否订单(NO);
                model顾客进店记录表.set是否报价(NO);
                model顾客进店记录表.set接待备注("意向订单转订单");

                model顾客进店记录表.set到店目的("其他");
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_Order.getText());
                break;
            case REFUND_ORDER://退订
                model顾客进店记录表.set是否订单(NO);

                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Unsubscribe.getText());
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_E.getText());
                break;
            case NEW_REFUND_ORDER://隔天订单，今天有进店记录退订
                model顾客进店记录表.set是否订单(REFUND);

                model顾客进店记录表.set到店目的(ORDER_TYPE.Inroom_Purpose_Unsubscribe.getText());
                model顾客进店记录表.set客户级别(ORDER_TYPE.Cust_Level_E.getText());
                break;

        }
    }
}
